<?php

namespace app\common\model\xiluhouse;

use think\Model;
use app\common\model\User;

class RentalContact extends Base
{
    // 表名
    protected $name = 'xiluhouse_rental_contact';
    
    // 自动写入时间戳字段
    protected $autoWriteTimestamp = true;
    
    // 定义时间戳字段名
    protected $createTime = 'createtime';
    protected $updateTime = 'updatetime';
    
    // 追加属性
    protected $append = [
        'status_text'
    ];

    // 定义默认值
    protected $insert = [
        'rental_id' => 0,
        'user_id' => 0,
        'wechat_name' => '',
        'mobile' => '',
        'wechat_num' => '',
        'qq_num' => '',
        'contact_time' => '',
        'is_default' => 0,
        'status' => 'normal'
    ];

    /**
     * 关联用户表
     */
    public function user()
    {
        return $this->belongsTo('app\common\model\User', 'user_id', 'id', [], 'LEFT')->setEagerlyType(0);
    }

    /**
     * 关联房源表
     */
    public function rental()
    {
        return $this->belongsTo('app\common\model\xiluhouse\Rental', 'rental_id', 'id', [], 'LEFT')->setEagerlyType(0);
    }

    /**
     * 状态获取器
     */
    public function getStatusTextAttr($value, $data)
    {
        $value = $data['status'] ?? 'normal';
        $list = [
            'normal' => '正常',
            'hidden' => '隐藏'
        ];
        return isset($list[$value]) ? $list[$value] : '';
    }

    /**
     * 获取用户的所有联系方式
     * @param int $user_id 用户ID
     * @return array
     */
    public static function getUserContacts($user_id)
    {
        return self::where([
            'user_id' => $user_id,
            'status' => 'normal'
        ])->order('is_default DESC, id DESC')->select();
    }

    /**
     * 获取房源的联系方式
     * @param int $rental_id 房源ID
     * @return array|null
     */
    public static function getRentalContact($rental_id)
    {
        return self::where([
            'rental_id' => $rental_id,
            'status' => 'normal'
        ])->find();
    }
} 